package com.lgy.dto;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.lgy.beans.OrderDetail;
import com.lgy.enums.OrderStatusEnum;
import com.lgy.enums.PayStatusEnum;
import com.lgy.serializer.DateToLongSerializer;
import com.lgy.utils.EnumUtils;
import lombok.Data;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Data
public class OrderDTO {

    private String orderId;

    // 买家名字
    private String buyerName;

    // 买家手机号
    private String buyerPhone;

    // 买家地址
    private String buyerAddress;

    // 买家Openid
    private String buyerOpenid;

    // 订单总金额
    private BigDecimal orderAmount;

    // 订单状态, 默认状态0新下单
    private Integer orderStatus = OrderStatusEnum.NEW.getCode();

    // 支付状态, 默认状态0等待支付
    private Integer payStatus = PayStatusEnum.WAIT.getCode();

    // 创建时间
    @JsonSerialize(using = DateToLongSerializer.class)
    private Date createTime;

    // 更新时间
    @JsonSerialize(using = DateToLongSerializer.class)
    private Date updateTime;

    private List<OrderDetail> orderDetailList = new ArrayList<>();

    @JsonIgnore
    public OrderStatusEnum getOrderStatusEnum() {
        return EnumUtils.getByCode(orderStatus, OrderStatusEnum.class);
    }

    @JsonIgnore
    public PayStatusEnum getPayStatusEnum() {
        return EnumUtils.getByCode(payStatus, PayStatusEnum.class);
    }
}
